package com.qingzhuge.common;


import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * @author : zero.xiao
 * @description : 常量表
 * @modified :
 */
public interface Constants {
    String DEFAULT_ENCODING = "UTF-8";
    Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
    /**
     * 支付默认非多店铺id值
     */
    Long DEF_PAY_ID = 0L;
    /**
     * request 返回信息key message
     */
    String RETURN_KEY_MSG = "message";
    /**
     * request 返回信息key code
     */
    String RETURN_KEY_CODE = "code";
    /**
     * request 返回信息key timestamp
     */
    String RETURN_KEY_TIMESTAMP = "timestamp";
    /**
     * 异常信息统一头信息<br>
     * 非常遗憾的通知您,程序发生了异常
     */
    String EXCEPTION_HEAD = "Oh! There were some mistakes! As follows:";
    /**
     * 客户端主题
     */
    String WEBTHEME = "webTheme";
    /**
     * 当前用户
     */
    String CURRENT_USER = "CURRENT_USER";
    /**
     * 当前用户ID
     */
    String CURRENT_USER_ID = "CURRENT_USER_ID";

    /**
     * 缓存命名空间
     */
    String ROOT_CACHE_NAMESPACE = "qingzhuge:";
    /**
     * 请求缓存命名空间
     */
    String REQUEST_CACHE_NAMESPACE = ROOT_CACHE_NAMESPACE + "request:";
    /**锁*/
    String LOCK_PREFIX = "redis_lock:";
    /**
     * user cache
     */
    String REDIS_USER_CACHE = REQUEST_CACHE_NAMESPACE + "user-cache:";
    /**
     * user session
     */
    String REDIS_USER_SESSION = REQUEST_CACHE_NAMESPACE + "user-session:";
    /**
     *
     */
    String REDIS_USER_AUTHENTICATION = "authentication:";
    /**
     *
     */
    String REDIS_USER_AUTHORIZATION = "authorization:";
    /**
     * atomicInteger
     */
    String REDIS_ATOMICINTEGER = REQUEST_CACHE_NAMESPACE + "atomicInteger:";
    /**
     * 在线用户数量
     */
    String SESSION_ONLINE = REQUEST_CACHE_NAMESPACE + "session_online";
    /**
     * 默认数据库密码加密key
     */
    String DB_KEY = "qingzhuge.com";
    /**角色*/
    interface ROLETYPE{
        /**系统隐藏角色，不对外开放*/
        String ROOT = "ROOT";
        /**系统管理*/
        String SYSTEM = "SYSTEM";
        /**管理员*/
        String ADMIN = "ADMIN";
        /**普通用户*/
        String USER = "USER";

    }
    /**
     * 短信验证码类型
     */
    interface MSGCHKTYPE {
        /**
         * 注册
         */
        String REGISTER = REQUEST_CACHE_NAMESPACE + "message:register:";
        /**
         * 登录
         */
        String LOGIN = REQUEST_CACHE_NAMESPACE + "message:login:";
        /**
         * 修改密码验证码
         */
        String CHGPWD = REQUEST_CACHE_NAMESPACE + "message:resetPwd:";
        /**
         * 身份验证验证码
         */
        String VLDID = REQUEST_CACHE_NAMESPACE + "message:verify:";
        /**
         * 信息变更验证码
         */
        String CHGINFO = REQUEST_CACHE_NAMESPACE + "message:resetInfo:";
        /**
         * 活动确认验证码
         */
        String AVTCMF = REQUEST_CACHE_NAMESPACE + "message:activeConfirm:";
    }

    /**
     * 国际化信息
     */
    interface I18n {
        /**
         * 非法操作.
         */
        String ACTION_ILLEGAL = "ILLEGAL_ACTION";
        /**
         * 数据已存在
         */
        String DATA__EXISTS = "DATA__EXISTS";
        /**
         * 状态码前缀
         */
        String HTTPCODE = "HTTPCODE_";
        /**
         * 设置系统属性：mail.smtp.host
         */
        String EMAIL_SET_HOST = "EMAIL.SET_HOST";
        /**
         * 准备获取邮件会话对象！
         */
        String EMAIL_PRE_TALK = "EMAIL.PRE_TALK";
        /**
         * 获取邮件会话对象时发生错误！
         */
        String EMAIL_ERROR_TALK = "EMAIL.ERROR_TALK";
        /**
         * 准备创建MIME邮件对象！
         */
        String EMAIL_PRE_MIME = "EMAIL.PRE_MIME";
        /**
         * 创建MIME邮件对象失败！
         */
        String EMAIL_ERROR_MIME = "EMAIL.ERROR_MIME";
        /**
         * 设置smtp身份认证：mail.smtp.auth
         */
        String EMAIL_SET_AUTH = "EMAIL.SET_AUTH";
        /**
         * 设置邮件主题[%s]！
         */
        String EMAIL_SET_SUBJECT = "EMAIL.SET_SUBJECT";
        /**
         * 设置邮件主题发生错误！
         */
        String EMAIL_ERROR_SUBJECT = "EMAIL.ERROR_SUBJECT";
        /**
         * 设置邮件正文时发生错误！
         */
        String EMAIL_ERROR_BODY = "EMAIL.ERROR_BODY";
        /**
         * 增加邮件附件[%s]！
         */
        String EMAIL_ADD_ATTEND = "EMAIL.ADD_ATTEND";
        /**
         * 设置收信人[%s]！
         */
        String EMAIL_SET_TO = "EMAIL.SET_TO";
        /**
         * 设置抄送人[%s]！
         */
        String EMAIL_SET_COPYTO = "EMAIL.SET_COPYTO";
        /**
         * 正在发送邮件....
         */
        String EMAIL_SENDING = "EMAIL.SENDING";
        /**
         * 发送邮件成功！
         */
        String EMAIL_SEND_SUCC = "EMAIL.SEND_SUCC";
        /**
         * 邮件发送失败！
         */
        String EMAIL_SEND_ERR = "EMAIL.SEND_ERR";
        /**
         * 未获取到%s登录令牌！
         */
        String THIRDPARTY_LOGIN_NOTOKEN = "THIRDPARTY.LOGIN.NOTOKEN";
        /**
         * 身份证号码错误.
         */
        String IDCARD_ILLEGAL = "IDCARD_ILLEGAL";
        /**
         * 邮箱格式错误.
         */
        String EMAIL_ILLEGAL = "EMAIL_ILLEGAL";
        /**
         * 手机号格式错误.
         */
        String MOBILE_ILLEGAL = "MOBILE_ILLEGAL";
        /**
         * 定时任务Id不能为空.
         */
        String TASKID_IS_NULL = "TASKID_IS_NULL";
        /**
         * 用户ID不能为空.
         */
        String USER_ID_IS_NULL = "USER_ID_IS_NULL";
        /**
         * 用户Id[%s]错误.
         */
        String USER_IS_NULL = "USER_IS_NULL";
        /**
         * Id不能为空.
         */
        String ID_IS_NULL = "ID_IS_NULL";
        /**
         * 任务组名称不能为空.
         */
        String TASKGROUP_IS_NULL = "TASKGROUP_IS_NULL";
        /**
         * 任务名称不能为空.
         */
        String TASKNAME_IS_NULL = "TASKNAME_IS_NULL";
        /**
         * 任务执行类型不能为空.
         */
        String JOBTYPE_IS_NULL = "JOBTYPE_IS_NULL";
        /**
         * 任务执行器类型不能为空.
         */
        String TASKTYPE_IS_NULL = "TASKTYPE_IS_NULL";
        /**
         * 任务运行对象不能为空.
         */
        String TARGETOBJECT_IS_NULL = "TARGETOBJECT_IS_NULL";
        /**
         * 任务运行方法不能为空.
         */
        String TARGETMETHOD_IS_NULL = "TARGETMETHOD_IS_NULL";

        /**
         * 任务执行系统不能为空.
         */
        String TARGETSYSTEM_IS_NULL = "TARGETSYSTEM_IS_NULL";

        interface LOGIN {
            /**
             * 帐号不能为空.
             */
            String USERNAME_IS_NULL = "USERNAME_IS_NULL";
            /**
             * 帐号允许长度范围%s-%s.
             */
            String USERNAME_LENGTH = "USERNAME_LENGTH";
            /**
             * 密码不能为空.
             */
            String PASSWORD_IS_NULL = "PASSWORD_IS_NULL";
            /**
             * 帐号允许长度范围%s-%s.
             */
            String PASSWORD_LENGTH = "PASSWORD_LENGTH";
            /**
             * 原密码不能为空.
             */
            String OLDPASSWORD_IS_NULL = "OLDPASSWORD_IS_NULL";
            /**
             * 原密码错误
             */
            String OLDPASSWORD_IS_WRONG = "OLDPASSWORD_IS_WRONG";
            /**
             * 账号锁定.
             */
            String USERNAME_LOCKED = "USERNAME_LOCKED";
            /**
             * 账号禁用.
             */
            String USERNAME_DISABLED = "USERNAME_DISABLED";
            /**
             * 登录超时.
             */
            String USERNAME_EXPIRED = "USERNAME_EXPIRED";
            /**
             * %s 登录失败.
             */
            String LOGIN_FAIL = "LOGIN_FAIL";
            /**
             * %s 登录成功
             */
            String LOGIN_SUCCESS = "LOGIN_SUCCESS";
        }
    }

    interface Controller {
        String PATH_LIST = "list";
        String PATH_PAGE = "page";
        String PATH_INFO = "info";
        String PATH_BY_ID = "{id}";
        String PATH_FILE = "file";
        String PATH_DOWNLOAD = "download/{id}";
    }
}
